package com.hongxin.doc.common.onlyoffice.token.edit;

import java.util.ArrayList;
import java.util.List;

/**
 * <a href="https://api.onlyoffice.com/docs/docs-api/usage-api/config/document/permissions/">文档权限部分允许更改文档是否可以编辑和下载的权限。</a>
 */
public class DocumentPermissionsProperties {
    public Boolean comment = true;
    public PermissionsCommentGroups commentGroups = new PermissionsCommentGroups();
    public Boolean copy = true;
    public Boolean deleteCommentAuthorOnly = false;
    public Boolean download = true;
    public Boolean edit = true;
    public Boolean editCommentAuthorOnly = false;
    public Boolean fillForms = true;
    public Boolean modifyContentControl = true;
    public Boolean modifyFilter = true;
    public Boolean print = true;
    public Boolean review = true;
    public List<String> reviewGroups = new ArrayList<>();

    public DocumentPermissionsProperties() {
        this.reviewGroups.add("方案解决部");
    }

    public Boolean getComment() {
        return comment;
    }

    public void setComment(Boolean comment) {
        this.comment = comment;
    }

    public PermissionsCommentGroups getCommentGroups() {
        return commentGroups;
    }

    public void setCommentGroups(PermissionsCommentGroups commentGroups) {
        this.commentGroups = commentGroups;
    }

    public Boolean getCopy() {
        return copy;
    }

    public void setCopy(Boolean copy) {
        this.copy = copy;
    }

    public Boolean getDeleteCommentAuthorOnly() {
        return deleteCommentAuthorOnly;
    }

    public void setDeleteCommentAuthorOnly(Boolean deleteCommentAuthorOnly) {
        this.deleteCommentAuthorOnly = deleteCommentAuthorOnly;
    }

    public Boolean getDownload() {
        return download;
    }

    public void setDownload(Boolean download) {
        this.download = download;
    }

    public Boolean getEdit() {
        return edit;
    }

    public void setEdit(Boolean edit) {
        this.edit = edit;
    }

    public Boolean getEditCommentAuthorOnly() {
        return editCommentAuthorOnly;
    }

    public void setEditCommentAuthorOnly(Boolean editCommentAuthorOnly) {
        this.editCommentAuthorOnly = editCommentAuthorOnly;
    }

    public Boolean getFillForms() {
        return fillForms;
    }

    public void setFillForms(Boolean fillForms) {
        this.fillForms = fillForms;
    }

    public Boolean getModifyContentControl() {
        return modifyContentControl;
    }

    public void setModifyContentControl(Boolean modifyContentControl) {
        this.modifyContentControl = modifyContentControl;
    }

    public Boolean getModifyFilter() {
        return modifyFilter;
    }

    public void setModifyFilter(Boolean modifyFilter) {
        this.modifyFilter = modifyFilter;
    }

    public Boolean getPrint() {
        return print;
    }

    public void setPrint(Boolean print) {
        this.print = print;
    }

    public Boolean getReview() {
        return review;
    }

    public void setReview(Boolean review) {
        this.review = review;
    }

    public List<String> getReviewGroups() {
        return reviewGroups;
    }

    public void setReviewGroups(List<String> reviewGroups) {
        this.reviewGroups = reviewGroups;
    }

    @Override
    public String toString() {
        return "DocumentPermissionsProperties{" +
                "comment=" + comment +
                ", commentGroups=" + commentGroups +
                ", copy=" + copy +
                ", deleteCommentAuthorOnly=" + deleteCommentAuthorOnly +
                ", download=" + download +
                ", edit=" + edit +
                ", editCommentAuthorOnly=" + editCommentAuthorOnly +
                ", fillForms=" + fillForms +
                ", modifyContentControl=" + modifyContentControl +
                ", modifyFilter=" + modifyFilter +
                ", print=" + print +
                ", review=" + review +
                ", reviewGroups=" + reviewGroups +
                '}';
    }
}
